此记录用于解决:
- CLion debug 时弹出对话框,解决方式:使用对应的构建工具 Unable to run debugger GNU debugger cannot be used with MSVC Rust toolchain.
- 无法读取变量值,报错:
Converting character sets: No Error.
,解决方式:更新 MinGW - 无法正确显示变量值,解决方式:不使用 MSVC
CLion 支持两种调试 Rust 的方式,分别是 GNU 和 MSVC,GNU 用于调试 Rust x86_64-pc-windows-gnu 的工具链,MSVC 用于调试 Rust x86_64-pc-windows-msvc 的工具链
这里推荐使用 GNU 也就是 Rust x86_64-pc-windows-gnu 工具链调试,GNU 使用 MinGW 构建工具,MSVC 使用 Visual Studio,MSVC 更兼容 Windows 的二进制文件/库,但是用在 CLion 调试上很糟糕,因此调试还是使用 GNU
#配置 CLion
CLion 自带了 MinGW,但是由于其版本有些落后对于调试也有问题,因此需要下载最新的 x86_64-12.2.0-release-win32-seh-msvcrt-rt_v10-rev2.7z
将其下载后解压至特定目录,在 CLion 的 构建、执行、部署 > 工具链
处新建 MinGW,将工具集
的路径指向解压的 MinGW 目录路径,调试器
改为 MinGW GDB 即可
#配置 Rust
Windows 下面的 Rust 默认使用 stable-x86_64-pc-windows-msvc 工具链,需要切换到 stable-x86_64-pc-windows-gnu,运行以下命令进行切换
rustup toolchain install stable-x86_64-pc-windows-gnu
rustup default stable-x86_64-pc-windows-gnu
#补充
人麻了,使用 mingw
会存在 cannot find -lntdll
的问题,使用 msvc
调试器存在问题
报 cannot find -lntdll
错时可以配置 GCC
的位置为下载的 MinGW
里面的 gcc
$Env:RUSTFLAGS = "-C linker={Mingw64_Directory}/bin/gcc"
# e.g $Env:RUSTFLAGS = "-C linker=C:\Users\{user}\Applications\mingw64\bin\gcc"
重启终端